package com.cpr.ams.service;


import com.cpr.ams.bean.BasePrivilege;
import com.cpr.ams.exception.AmsException;
import com.cpr.ams.vm.PrivilegeTree;

import java.util.List;

public interface IBasePrivilegeService {
    
    /** 
     * @Description: 查询所有权限 
     * @Param: [] 
     * @return: java.util.List<com.cpr.ams.bean.BasePrivilege>
     * @Author: GX Cui
     * @Date 11:41 下午 2021/4/11
     */
    List<BasePrivilege> findAll();
    
    /** 
     * @Description: 通过parentId查询权限
     * @Param: [parentId] 
     * @return: java.util.List<com.briup.apps.cms.bean.BasePrivilege>
     * @Author: GX Cui
     * @Date 11:41 下午 2021/4/11
     */ 
    List<BasePrivilege> findByParentId(Integer parentId);
    
    /** 
     * @Description: 保存或更新权限 
     * @Param: [privilege] 
     * @return: void
     * @Author: GX Cui
     * @Date 11:41 下午 2021/4/11
     */ 
    int saveOrUpdate(BasePrivilege privilege) throws AmsException;

    /** 
     * @Description: 查询权限树 
     * @Param: [] 
     * @return: java.util.List<com.cpr.ams.vm.PrivilegeTree>
     * @Author: GX Cui
     * @Date 11:41 下午 2021/4/11
     */ 
    List<PrivilegeTree> findPrivilegeTree();
    
    /** 
     * @Description: 查询用户所有权限 
     * @Param: [id] 
     * @return: java.util.List<com.briup.apps.cms.bean.BasePrivilege>
     * @Author: GX Cui
     * @Date 11:43 下午 2021/4/11
     */ 
    List<BasePrivilege> findByUserId(int id);

    /**
     * @Description: 查询用户所有菜单
     * @Param: [id]
     * @return: java.util.List<com.briup.apps.cms.bean.BasePrivilege>
     * @Author: GX Cui
     * @Date 11:44 下午 2021/4/11
     */
    List<BasePrivilege> findMenuByUserId(int id);

    /**
     * @Description: 通过id删除权限信息
     * @Param: [id]
     * @return: void
     * @Author: GX Cui
     * @Date 11:33 下午 2021/4/20
     */
    void deleteById(int id) throws AmsException;

}
